package com.kavin.design.template;

public abstract class Animal {

    void behavior(){
        eat();
        sleep();
    }

    abstract void eat();
    abstract void sleep();

    /**
     * @Date 2020/6/24
     * @param  * @param args
     * @return void
     * @Description 模板方法模式是一种行为设计模式，它定义一个操作中的算法的骨架，而将一些步骤延迟到子类中。
     *               模板方法使得子类可以在不改变一个算法的结构即可重定义该算法的默写特定步骤的实现方式
     */
    public static void main(String[] args) {
        Animal dog = new Dog();
        dog.behavior();
        System.out.println("---------------------------");

        Animal pig = new Pig();
        pig.behavior();
        System.out.println("---------------------------");
    }
}